/**
 * @brief 操作器基类
 * @author BaGuijun (baguijun@163.com)
 * @date 2024-08-14
 */
#ifndef __CFDPostOperatorsBase_H__
#define __CFDPostOperatorsBase_H__
#include "OperatorsInterface/ParaWidgetInterfaceOperator.h"
#include "CFDPostOperatorsModelAPI.h"
#include <QStringList>

namespace GUI{
class MainWindow;
}

namespace OperModel {
    /**
         * @brief 操作器基类
         * @author BaGuijun (baguijun@163.com)
         * @date 2024-08-14
         */
    class CFDPostOperatorsModelAPI CFDPostOperatorsBase : public EventOper::ParaWidgetInterfaceOperator {
        Q_OBJECT;
      public:
        /**
             * @brief Construct a new Oper Manager Base object
             * @author BaGuijun (baguijun@163.com)
             * @date 2024-08-14
             */
        CFDPostOperatorsBase();
        /**
             * @brief Destroy the Oper Manager Base object
             * @author BaGuijun (baguijun@163.com)
             * @date 2024-08-14
             */
        virtual ~CFDPostOperatorsBase();

        virtual void eventProcess(int index, QVariant value = QVariant()) override;

        //注意新添加的两个函数
        virtual void CurrentObjectChange(int objID);

        virtual void updateTree();
      protected:
        /**
             * @brief 参数预处理
             * @author BaGuijun (baguijun@163.com)
             * @date 2024-08-14
             */
        void preArgs() override;
        /**
             * @brief 主界面
             * @author BaGuijun (baguijun@163.com)
             * @date 2024-08-14
             */
        GUI::MainWindow* _mainWindow = nullptr;
        /**
             * @brief 触发对象
             * @author BaGuijun (baguijun@163.com)
             * @date 2024-08-14
             */
        QString _senderName = "";
        /**
             * @brief  是否点击
             * @author BaGuijun (baguijun@163.com)
             * @date   2024-10-16
             */
        bool _isChecked = false;
    };
} // namespace ModelOper
#endif //!__OperatorsBase_H__
